home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / Gestalt.a < prev    next >
Encoding:
Text File  |  1998-02-12  |  48.8 KB  |  1,131 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Gestalt.a
  3. ;
  4. ;    Contains:    Gestalt Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.1
  8. ;
  9. ;    Copyright:    © 1988-1998 by Apple Computer, Inc.  All rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__GESTALT__') = 'UNDEFINED' THEN
  19. __GESTALT__ SET 1
  20.  
  21.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  22.     include 'MacTypes.a'
  23.     ENDIF
  24.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  25.     include 'MixedMode.a'
  26.     ENDIF
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. ;
  34. ; pascal OSErr Gestalt(OSType selector, long *response)
  35. ;
  36.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  37.         _Gestalt:    OPWORD    $A1AD
  38.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  39.         IMPORT_CFM_FUNCTION Gestalt
  40.     ENDIF
  41.  
  42. ;
  43. ; pascal OSErr ReplaceGestalt(OSType selector, SelectorFunctionUPP gestaltFunction, SelectorFunctionUPP *oldGestaltFunction)
  44. ;
  45.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  46.         _ReplaceGestalt:    OPWORD    $A5AD
  47.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  48.         IMPORT_CFM_FUNCTION ReplaceGestalt
  49.     ENDIF
  50.  
  51. ;
  52. ; pascal OSErr NewGestalt(OSType selector, SelectorFunctionUPP gestaltFunction)
  53. ;
  54.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  55.         ; parameters:
  56.         ;    selector        => D0
  57.         ;    gestaltFunction => A0
  58.         ; returns:
  59.         ;    OSErr           <= D0
  60.         _NewGestalt:    OPWORD    $A3AD
  61.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  62.         IMPORT_CFM_FUNCTION NewGestalt
  63.     ENDIF
  64.  
  65.  
  66. ;      These functions (and SetGestaltValue) are built into System 7.5,
  67. ;      but not on earlier systems
  68.  
  69.  
  70.  
  71. ;
  72. ; pascal OSErr NewGestaltValue(OSType selector, long newValue)
  73. ;
  74.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  75.         Macro
  76.         _NewGestaltValue
  77.             move.w              #$0401,D0
  78.             dc.w                $ABF1
  79.         EndM
  80.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  81.         IMPORT_CFM_FUNCTION NewGestaltValue
  82.     ENDIF
  83.  
  84. ;
  85. ; pascal OSErr ReplaceGestaltValue(OSType selector, long replacementValue)
  86. ;
  87.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  88.         Macro
  89.         _ReplaceGestaltValue
  90.             move.w              #$0402,D0
  91.             dc.w                $ABF1
  92.         EndM
  93.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  94.         IMPORT_CFM_FUNCTION ReplaceGestaltValue
  95.     ENDIF
  96.  
  97. ;
  98. ; pascal OSErr SetGestaltValue(OSType selector, long newValue)
  99. ;
  100.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  101.         Macro
  102.         _SetGestaltValue
  103.             move.w              #$0404,D0
  104.             dc.w                $ABF1
  105.         EndM
  106.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  107.         IMPORT_CFM_FUNCTION SetGestaltValue
  108.     ENDIF
  109.  
  110. ;
  111. ; pascal OSErr DeleteGestaltValue(OSType selector)
  112. ;
  113.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  114.         Macro
  115.         _DeleteGestaltValue
  116.             move.w              #$0203,D0
  117.             dc.w                $ABF1
  118.         EndM
  119.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  120.         IMPORT_CFM_FUNCTION DeleteGestaltValue
  121.     ENDIF
  122.  
  123.  
  124.  
  125. ;  Environment Selectors 
  126.  
  127. gestaltAddressingModeAttr        EQU        'addr'                ; addressing mode attributes 
  128. gestalt32BitAddressing            EQU        0                    ; using 32-bit addressing mode 
  129. gestalt32BitSysZone                EQU        1                    ; 32-bit compatible system zone 
  130. gestalt32BitCapable                EQU        2                    ; Machine is 32-bit capable 
  131.  
  132. gestaltAFPClient                EQU        'afps'
  133. gestaltAFPClientVersionMask        EQU        $0000FFFF            ; low word of long is the 
  134.                                                             ; client version 0x0001 -> 0x0007
  135. gestaltAFPClient3_5                EQU        $0001
  136. gestaltAFPClient3_6                EQU        $0002
  137. gestaltAFPClient3_6_1            EQU        $0003
  138. gestaltAFPClient3_6_2            EQU        $0004
  139. gestaltAFPClient3_6_3            EQU        $0005                ; including 3.6.4, 3.6.5
  140. gestaltAFPClient3_7                EQU        $0006                ; including 3.7.1
  141. gestaltAFPClient3_7_2            EQU        $0007                ; including 3.7.3
  142. gestaltAFPClientAttributeMask    EQU        $FFFF0000            ; high word of long is a 
  143.                                                             ; set of attribute bits
  144. gestaltAFPClientCfgRsrc            EQU        16                    ; Client uses config resources
  145. gestaltAFPClientSupportsIP        EQU        29                    ; Client supports AFP over TCP/IP
  146. gestaltAFPClientVMUI            EQU        30                    ; Client can put up UI from the PBVolMount trap
  147. gestaltAFPClientMultiReq        EQU        31                    ; Client supports multiple outstanding requests
  148.  
  149. gestaltAliasMgrAttr                EQU        'alis'                ; Alias Mgr Attributes 
  150. gestaltAliasMgrPresent            EQU        0                    ; True if the Alias Mgr is present 
  151. gestaltAliasMgrSupportsRemoteAppletalk EQU 1                ; True if the Alias Mgr knows about Remote Appletalk 
  152. gestaltAliasMgrSupportsAOCEKeychain EQU    2                    ; True if the Alias Mgr knows about the AOCE Keychain 
  153. gestaltAliasMgrResolveAliasFileWithMountOptions EQU 3        ; True if the Alias Mgr implements gestaltAliasMgrResolveAliasFileWithMountOptions() and IsAliasFile() 
  154.  
  155. gestaltArbitorAttr                EQU        'arb '
  156. gestaltSerialArbitrationExists    EQU        0                    ; this bit if the serial port arbitrator exists
  157.  
  158. gestaltAppleScriptVersion        EQU        'ascv'                ; AppleScript version
  159.  
  160. gestaltAppleScriptAttr            EQU        'ascr'                ; AppleScript attributes
  161. gestaltAppleScriptPresent        EQU        0
  162. gestaltAppleScriptPowerPCSupport EQU    1
  163.  
  164. gestaltATAAttr                    EQU        'ata '                ; ATA is the driver to support IDE hard disks 
  165. gestaltATAPresent                EQU        0                    ; if set, ATA Manager is present 
  166.  
  167. gestaltATalkVersion                EQU        'atkv'                ; Detailed AppleTalk version; see comment above for format 
  168.  
  169. gestaltAppleTalkVersion            EQU        'atlk'                ; appletalk version 
  170. ;    FORMAT OF gestaltATalkVersion RESPONSE
  171. ;    --------------------------------------
  172. ;    The version is stored in the high three bytes of the response value.  Let us number
  173. ;    the bytes in the response value from 0 to 3, where 0 is the least-significant byte.
  174. ;
  175. ;        Byte#:       3 2 1 0
  176. ;        Value:    0xMMNNRR00
  177. ;
  178. ;    Byte 3 (MM) contains the major revision number, byte 2 (NN) contains the minor
  179. ;    revision number, and byte 1 (RR) contains a constant that represents the release
  180. ;    stage.  Byte 0 always contains 0x00.  The constants for the release stages are:
  181. ;
  182. ;        development = 0x20
  183. ;        alpha        = 0x40
  184. ;        beta        = 0x60
  185. ;        final        = 0x80
  186. ;        release        = 0x80
  187. ;
  188. ;    For example, if you call Gestalt with the 'atkv' selector when AppleTalk version 57
  189. ;    is loaded, you receive the long integer response value 0x39008000.
  190. ;
  191.  
  192.  
  193. gestaltAUXVersion                EQU        'a/ux'                ; a/ux version, if present 
  194.  
  195. gestaltBusClkSpeed                EQU        'bclk'                ; main I/O bus clock speed in hertz 
  196.  
  197. gestaltCloseViewAttr            EQU        'BSDa'                ; CloseView attributes 
  198. gestaltCloseViewEnabled            EQU        0                    ; Closeview enabled (dynamic bit - returns current state) 
  199. gestaltCloseViewDisplayMgrFriendly EQU    1                    ; Closeview compatible with Display Manager (FUTURE) 
  200.  
  201. gestaltCFMAttr                    EQU        'cfrg'                ; returns information about the Code Fragment Manager 
  202. gestaltCFMPresent                EQU        0                    ; true if the Code Fragment Manager is present 
  203.  
  204. gestaltCollectionMgrVersion        EQU        'cltn'                ; Collection Manager version 
  205.  
  206. gestaltColorMatchingAttr        EQU        'cmta'                ; ColorSync attributes 
  207. gestaltHighLevelMatching        EQU        0
  208. gestaltColorMatchingLibLoaded    EQU        1
  209.  
  210. gestaltColorMatchingVersion        EQU        'cmtc'
  211. gestaltColorSync10                EQU        $0100                ; 0x0100 & 0x0110 _Gestalt versions for 1.0-1.0.3 product 
  212. gestaltColorSync11                EQU        $0110                ;   0x0100 == low-level matching only 
  213. gestaltColorSync104                EQU        $0104                ; Real version, by popular demand 
  214. gestaltColorSync105                EQU        $0105
  215. gestaltColorSync20                EQU        $0200                ; ColorSync 2.0 
  216. gestaltColorSync21                EQU        $0210
  217. gestaltColorSync211                EQU        $0211
  218. gestaltColorSync212                EQU        $0212
  219. gestaltColorSync213                EQU        $0213
  220. gestaltColorSync25                EQU        $0250
  221.  
  222. gestaltConnMgrAttr                EQU        'conn'                ; connection mgr attributes    
  223. gestaltConnMgrPresent            EQU        0
  224. gestaltConnMgrCMSearchFix        EQU        1                    ; Fix to CMAddSearch?     
  225. gestaltConnMgrErrorString        EQU        2                    ; has CMGetErrorString() 
  226. gestaltConnMgrMultiAsyncIO        EQU        3                    ; CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill 
  227.  
  228. gestaltColorPickerVersion        EQU        'cpkr'                ; returns version of ColorPicker 
  229. gestaltColorPicker                EQU        'cpkr'                ; gestaltColorPicker is old name for gestaltColorPickerVersion 
  230.  
  231. gestaltComponentMgr                EQU        'cpnt'                ; Component Mgr version 
  232. ;    The gestaltNativeCPUtype ('cput') selector can be used to determine the
  233. ;    native CPU type for all Macs running System 7.5 or later.
  234. ;
  235. ;    The 'cput' selector is not available when running System 7.0 (or earlier)
  236. ;    on most 68K machines.  If 'cput' is not available, then the 'proc' selector
  237. ;    should be used to determine the processor type.
  238. ;
  239. ;    An application should always try the 'cput' selector first.  This is because,
  240. ;    on PowerPC machines, the 'proc' selector will reflect the CPU type of the
  241. ;    emulator's "virtual processor" rather than the native CPU type.
  242. ;
  243. ;    The values specified below are accurate.  Prior versions of the Gestalt
  244. ;    interface file contained values that were off by one.
  245. ;
  246. ;    The Quadra 840AV and the Quadra 660AV contain a bug in the ROM code that
  247. ;    causes the 'cput' selector to respond with the value 5.  This behavior
  248. ;    occurs only when running System 7.1.  System 7.5 fixes the bug by replacing
  249. ;    the faulty 'cput' selector function with the correct one.
  250. ;
  251. ;    The gestaltNativeCPUfamily ('cpuf') selector can be used to determine the
  252. ;    general family the native CPU is in. This can be helpful for determing how
  253. ;    blitters and things should be written. In general, it is smarter to use this
  254. ;    selector (when available) than gestaltNativeCPUtype since newer processors
  255. ;    in the same family can be handled without revising your code.
  256. ;
  257. ;    gestaltNativeCPUfamily uses the same results as gestaltNativeCPUtype, but
  258. ;    will only return certain CPU values.
  259. ;
  260.  
  261.  
  262. gestaltNativeCPUtype            EQU        'cput'                ; Native CPU type                                       
  263. gestaltNativeCPUfamily            EQU        'cpuf'                ; Native CPU family                                  
  264. gestaltCPU68000                    EQU        0                    ; Various 68k CPUs...     
  265. gestaltCPU68010                    EQU        1
  266. gestaltCPU68020                    EQU        2
  267. gestaltCPU68030                    EQU        3
  268. gestaltCPU68040                    EQU        4
  269. gestaltCPU601                    EQU        $0101                ; IBM 601                                                 
  270. gestaltCPU603                    EQU        $0103
  271. gestaltCPU604                    EQU        $0104
  272. gestaltCPU603e                    EQU        $0106
  273. gestaltCPU603ev                    EQU        $0107
  274. gestaltCPU750                    EQU        $0108                ; Also 740 - "G3" 
  275. gestaltCPU604e                    EQU        $0109
  276. gestaltCPU604ev                    EQU        $010A                ; Mach 5, 250Mhz and up 
  277.  
  278. gestaltCRMAttr                    EQU        'crm '                ; comm resource mgr attributes 
  279. gestaltCRMPresent                EQU        0
  280. gestaltCRMPersistentFix            EQU        1                    ; fix for persistent tools 
  281. gestaltCRMToolRsrcCalls            EQU        2                    ; has CRMGetToolResource/ReleaseToolResource 
  282.  
  283. gestaltControlStripVersion        EQU        'csvr'                ; Control Strip version (was 'sdvr') 
  284.  
  285. gestaltCTBVersion                EQU        'ctbv'                ; CommToolbox version 
  286.  
  287. gestaltDBAccessMgrAttr            EQU        'dbac'                ; Database Access Mgr attributes 
  288. gestaltDBAccessMgrPresent        EQU        0                    ; True if Database Access Mgr present 
  289.  
  290. gestaltSDPFindVersion            EQU        'dfnd'                ; OCE Standard Directory Panel
  291.  
  292. gestaltDictionaryMgrAttr        EQU        'dict'                ; Dictionary Manager attributes 
  293. gestaltDictionaryMgrPresent        EQU        0                    ; Dictionary Manager attributes 
  294.  
  295. gestaltDITLExtAttr                EQU        'ditl'                ; AppenDITL, etc. calls from CTB 
  296. gestaltDITLExtPresent            EQU        0                    ; True if calls are present 
  297. gestaltDITLExtSupportsIctb        EQU        1                    ; True if AppendDITL, ShortenDITL support 'ictb's 
  298.  
  299. gestaltDesktopPicturesAttr        EQU        'dkpx'                ; Desktop Pictures attributes 
  300. gestaltDesktopPicturesInstalled    EQU        0                    ; True if control panel is installed 
  301. gestaltDesktopPicturesDisplayed    EQU        1                    ; True if a picture is currently displayed 
  302.  
  303. gestaltDisplayMgrVers            EQU        'dplv'                ; Display Manager version 
  304.  
  305. gestaltDisplayMgrAttr            EQU        'dply'                ; Display Manager attributes 
  306. gestaltDisplayMgrPresent        EQU        0                    ; True if Display Mgr is present 
  307. gestaltDisplayMgrCanSwitchMirrored EQU    2                    ; True if Display Mgr can switch modes on mirrored displays 
  308. gestaltDisplayMgrSetDepthNotifies EQU    3                    ; True SetDepth generates displays mgr notification 
  309. gestaltDisplayMgrCanConfirm        EQU        4                    ; True Display Manager supports DMConfirmConfiguration 
  310.  
  311. gestaltDragMgrAttr                EQU        'drag'                ; Drag Manager attributes 
  312. gestaltDragMgrPresent            EQU        0                    ; Drag Manager is present 
  313. gestaltDragMgrFloatingWind        EQU        1                    ; Drag Manager supports floating windows 
  314. gestaltPPCDragLibPresent        EQU        2                    ; Drag Manager PPC DragLib is present 
  315. gestaltDragMgrHasImageSupport    EQU        3                    ; Drag Manager allows SetDragImage call 
  316. gestaltCanStartDragInFloatWindow EQU    4                    ; Drag Manager supports starting a drag in a floating window 
  317.  
  318. gestaltDigitalSignatureVersion    EQU        'dsig'                ; returns Digital Signature Toolbox version in low-order word
  319.  
  320. gestaltEasyAccessAttr            EQU        'easy'                ; Easy Access attributes 
  321. gestaltEasyAccessOff            EQU        0                    ; if Easy Access present, but off (no icon) 
  322. gestaltEasyAccessOn                EQU        1                    ; if Easy Access "On" 
  323. gestaltEasyAccessSticky            EQU        2                    ; if Easy Access "Sticky" 
  324. gestaltEasyAccessLocked            EQU        3                    ; if Easy Access "Locked" 
  325.  
  326. gestaltEditionMgrAttr            EQU        'edtn'                ; Edition Mgr attributes 
  327. gestaltEditionMgrPresent        EQU        0                    ; True if Edition Mgr present 
  328. gestaltEditionMgrTranslationAware EQU    1                    ; True if edition manager is translation manager aware 
  329.  
  330. gestaltAppleEventsAttr            EQU        'evnt'                ; Apple Events attributes 
  331. gestaltAppleEventsPresent        EQU        0                    ; True if Apple Events present 
  332. gestaltScriptingSupport            EQU        1
  333. gestaltOSLInSystem                EQU        2                    ; OSL is in system so don’t use the one linked in to app 
  334.  
  335. gestaltExtensionTableVersion    EQU        'etbl'                ; ExtensionTable version 
  336.  
  337. gestaltFloppyAttr                EQU        'flpy'                ; Floppy disk drive/driver attributes 
  338. gestaltFloppyIsMFMOnly            EQU        0                    ; Floppy driver only supports MFM disk formats 
  339. gestaltFloppyIsManualEject        EQU        1                    ; Floppy drive, driver, and file system are in manual-eject mode 
  340. gestaltFloppyUsesDiskInPlace    EQU        2                    ; Floppy drive must have special DISK-IN-PLACE output; standard DISK-CHANGED not used 
  341.  
  342. gestaltFinderAttr                EQU        'fndr'                ; Finder attributes 
  343. gestaltFinderDropEvent            EQU        0                    ; Finder recognizes drop event 
  344. gestaltFinderMagicPlacement        EQU        1                    ; Finder supports magic icon placement 
  345. gestaltFinderCallsAEProcess        EQU        2                    ; Finder calls AEProcessAppleEvent 
  346. gestaltOSLCompliantFinder        EQU        3                    ; Finder is scriptable and recordable 
  347. gestaltFinderSupports4GBVolumes    EQU        4                    ; Finder correctly handles 4GB volumes 
  348. gestaltFinderHasClippings        EQU        6                    ; Finder supports Drag Manager clipping files 
  349. gestaltFinderFullDragManagerSupport EQU    7                    ; Finder accepts 'hfs ' flavors properly 
  350. gestaltFinderFloppyRootComments    EQU        8                    ; in MacOS 8 and later, will be set if Finder ever supports comments on Floppy icons 
  351. gestaltFinderLargeAndNotSavedFlavorsOK EQU 9                ; in MacOS 8 and later, drags with >1024-byte flavors and flavorNotSaved flavors work reliably 
  352.  
  353. gestaltFindFolderAttr            EQU        'fold'                ; Folder Mgr attributes 
  354. gestaltFindFolderPresent        EQU        0                    ; True if Folder Mgr present 
  355. gestaltFolderDescSupport        EQU        1                    ; Tru if Folder Mgr has FolderDesc calls 
  356.  
  357.  
  358. gestaltFontMgrAttr                EQU        'font'                ; Font Mgr attributes 
  359. gestaltOutlineFonts                EQU        0                    ; True if Outline Fonts supported 
  360.  
  361. gestaltFPUType                    EQU        'fpu '                ; fpu type 
  362. gestaltNoFPU                    EQU        0                    ; no FPU 
  363. gestalt68881                    EQU        1                    ; 68881 FPU 
  364. gestalt68882                    EQU        2                    ; 68882 FPU 
  365. gestalt68040FPU                    EQU        3                    ; 68040 built-in FPU 
  366.  
  367. gestaltFSAttr                    EQU        'fs  '                ; file system attributes 
  368. gestaltFullExtFSDispatching        EQU        0                    ; has really cool new HFSDispatch dispatcher 
  369. gestaltHasFSSpecCalls            EQU        1                    ; has FSSpec calls 
  370. gestaltHasFileSystemManager        EQU        2                    ; has a file system manager 
  371. gestaltFSMDoesDynamicLoad        EQU        3                    ; file system manager supports dynamic loading 
  372. gestaltFSSupports4GBVols        EQU        4                    ; file system supports 4 gigabyte volumes 
  373. gestaltFSSupports2TBVols        EQU        5                    ; file system supports 2 terabyte volumes 
  374. gestaltHasExtendedDiskInit        EQU        6                    ; has extended Disk Initialization calls 
  375. gestaltDTMgrSupportsFSM            EQU        7                    ; Desktop Manager support FSM-based foreign file systems 
  376.  
  377. gestaltFSMVersion                EQU        'fsm '                ; returns version of HFS External File Systems Manager (FSM) 
  378.  
  379. gestaltFXfrMgrAttr                EQU        'fxfr'                ; file transfer manager attributes 
  380. gestaltFXfrMgrPresent            EQU        0
  381. gestaltFXfrMgrMultiFile            EQU        1                    ; supports FTSend and FTReceive 
  382. gestaltFXfrMgrErrorString        EQU        2                    ; supports FTGetErrorString 
  383. gestaltFXfrMgrAsync                EQU        3                    ;supports FTSendAsync, FTReceiveAsync, FTCompletionAsync
  384.  
  385. gestaltGraphicsAttr                EQU        'gfxa'                ; Quickdraw GX attributes selector 
  386. gestaltGraphicsIsDebugging        EQU        $00000001
  387. gestaltGraphicsIsLoaded            EQU        $00000002
  388. gestaltGraphicsIsPowerPC        EQU        $00000004
  389.  
  390. gestaltGraphicsVersion            EQU        'grfx'                ; Quickdraw GX version selector 
  391. gestaltCurrentGraphicsVersion    EQU        $00010200            ; the version described in this set of headers 
  392.  
  393. gestaltHardwareAttr                EQU        'hdwr'                ; hardware attributes 
  394. gestaltHasVIA1                    EQU        0                    ; VIA1 exists 
  395. gestaltHasVIA2                    EQU        1                    ; VIA2 exists 
  396. gestaltHasASC                    EQU        3                    ; Apple Sound Chip exists 
  397. gestaltHasSCC                    EQU        4                    ; SCC exists 
  398. gestaltHasSCSI                    EQU        7                    ; SCSI exists 
  399. gestaltHasSoftPowerOff            EQU        19                    ; Capable of software power off 
  400. gestaltHasSCSI961                EQU        21                    ; 53C96 SCSI controller on internal bus 
  401. gestaltHasSCSI962                EQU        22                    ; 53C96 SCSI controller on external bus 
  402. gestaltHasUniversalROM            EQU        24                    ; Do we have a Universal ROM? 
  403. gestaltHasEnhancedLtalk            EQU        30                    ; Do we have Enhanced LocalTalk? 
  404.  
  405. gestaltHelpMgrAttr                EQU        'help'                ; Help Mgr Attributes 
  406. gestaltHelpMgrPresent            EQU        0                    ; true if help mgr is present 
  407. gestaltHelpMgrExtensions        EQU        1                    ; true if help mgr extensions are installed 
  408. gestaltAppleGuideIsDebug        EQU        30
  409. gestaltAppleGuidePresent        EQU        31                    ; true if AppleGuide is installed 
  410.  
  411. gestaltHardwareVendorCode        EQU        'hrad'                ; Returns hardware vendor information 
  412. gestaltHardwareVendorApple        EQU        'Appl'                ; Hardware built by Apple 
  413.  
  414. gestaltCompressionMgr            EQU        'icmp'                ; returns version of the Image Compression Manager 
  415.  
  416. gestaltIconUtilitiesAttr        EQU        'icon'                ; Icon Utilities attributes  (Note: available in System 7.0, despite gestalt) 
  417. gestaltIconUtilitiesPresent        EQU        0                    ; true if icon utilities are present 
  418.  
  419. gestaltInternalDisplay            EQU        'idsp'                ; slot number of internal display location 
  420. ;    To obtain information about the connected keyboard(s), one should
  421. ;    use the ADB Manager API.  See Technical Note OV16 for details.
  422. ;
  423.  
  424.  
  425. gestaltKeyboardType                EQU        'kbd '                ; keyboard type 
  426. gestaltMacKbd                    EQU        1
  427. gestaltMacAndPad                EQU        2
  428. gestaltMacPlusKbd                EQU        3
  429. gestaltExtADBKbd                EQU        4
  430. gestaltStdADBKbd                EQU        5
  431. gestaltPrtblADBKbd                EQU        6
  432. gestaltPrtblISOKbd                EQU        7
  433. gestaltStdISOADBKbd                EQU        8
  434. gestaltExtISOADBKbd                EQU        9
  435. gestaltADBKbdII                    EQU        10
  436. gestaltADBISOKbdII                EQU        11
  437. gestaltPwrBookADBKbd            EQU        12
  438. gestaltPwrBookISOADBKbd            EQU        13
  439. gestaltAppleAdjustKeypad        EQU        14
  440. gestaltAppleAdjustADBKbd        EQU        15
  441. gestaltAppleAdjustISOKbd        EQU        16
  442. gestaltJapanAdjustADBKbd        EQU        17                    ; Japan Adjustable Keyboard 
  443. gestaltPwrBkExtISOKbd            EQU        20                    ; PowerBook Extended International Keyboard with function keys 
  444. gestaltPwrBkExtJISKbd            EQU        21                    ; PowerBook Extended Japanese Keyboard with function keys         
  445. gestaltPwrBkExtADBKbd            EQU        24                    ; PowerBook Extended Domestic Keyboard with function keys         
  446. gestaltPS2Keyboard                EQU        27                    ; PS2 keyboard 
  447. gestaltPwrBkSubDomKbd            EQU        28                    ; PowerBook Subnote Domestic Keyboard with function keys w/  inverted T     
  448. gestaltPwrBkSubISOKbd            EQU        29                    ; PowerBook Subnote International Keyboard with function keys w/  inverted T     
  449. gestaltPwrBkSubJISKbd            EQU        30                    ; PowerBook Subnote Japanese Keyboard with function keys w/ inverted T         
  450. gestaltPwrBkEKDomKbd            EQU        195                    ; (0xC3) PowerBook Domestic Keyboard with Embedded Keypad, function keys & inverted T     
  451. gestaltPwrBkEKISOKbd            EQU        196                    ; (0xC4) PowerBook International Keyboard with Embedded Keypad, function keys & inverted T     
  452. gestaltPwrBkEKJISKbd            EQU        197                    ; (0xC5) PowerBook Japanese Keyboard with Embedded Keypad, function keys & inverted T         
  453.  
  454. gestaltLowMemorySize            EQU        'lmem'                ; size of low memory area 
  455.  
  456. gestaltLogicalRAMSize            EQU        'lram'                ; logical ram size 
  457. ;    MACHINE TYPE CONSTANTS NAMING CONVENTION
  458. ;
  459. ;        All future machine type constant names take the following form:
  460. ;
  461. ;            gestalt<lineName><modelNumber>
  462. ;
  463. ;    Line Names
  464. ;
  465. ;        The following table contains the lines currently produced by Apple and the
  466. ;        lineName substrings associated with them:
  467. ;
  468. ;            Line                        lineName
  469. ;            -------------------------    ------------
  470. ;            Macintosh LC                "MacLC"
  471. ;            Macintosh Performa            "Performa"
  472. ;            Macintosh PowerBook            "PowerBook"
  473. ;            Macintosh PowerBook Duo        "PowerBookDuo"
  474. ;            Power Macintosh                "PowerMac"
  475. ;            Apple Workgroup Server        "AWS"
  476. ;
  477. ;        The following table contains lineNames for some discontinued lines:
  478. ;
  479. ;            Line                        lineName
  480. ;            -------------------------    ------------
  481. ;            Macintosh Quadra            "MacQuadra" (preferred)
  482. ;                                        "Quadra" (also used, but not preferred)
  483. ;            Macintosh Centris            "MacCentris"
  484. ;
  485. ;    Model Numbers
  486. ;
  487. ;        The modelNumber is a string representing the specific model of the machine
  488. ;        within its particular line.  For example, for the Power Macintosh 8100/80,
  489. ;        the modelNumber is "8100".
  490. ;
  491. ;        Some Performa & LC model numbers contain variations in the rightmost 1 or 2
  492. ;        digits to indicate different RAM and Hard Disk configurations.  A single
  493. ;        machine type is assigned for all variations of a specific model number.  In
  494. ;        this case, the modelNumber string consists of the constant leftmost part
  495. ;        of the model number with 0s for the variant digits.  For example, the
  496. ;        Performa 6115 and Performa 6116 are both return the same machine type
  497. ;        constant:  gestaltPerforma6100.
  498. ;
  499. ;
  500. ;    OLD NAMING CONVENTIONS
  501. ;
  502. ;    The "Underscore Speed" suffix
  503. ;
  504. ;        In the past, Apple differentiated between machines that had the same model
  505. ;        number but different speeds.  For example, the Power Macintosh 8100/80 and
  506. ;        Power Macintosh 8100/100 return different machine type constants.  This is
  507. ;        why some existing machine type constant names take the form:
  508. ;
  509. ;            gestalt<lineName><modelNumber>_<speed>
  510. ;
  511. ;        e.g.
  512. ;
  513. ;            gestaltPowerMac8100_110
  514. ;            gestaltPowerMac7100_80
  515. ;            gestaltPowerMac7100_66
  516. ;
  517. ;        It is no longer necessary to use the "underscore speed" suffix.  Starting with
  518. ;        the Power Surge machines (Power Macintosh 7200, 7500, 8500 and 9500), speed is
  519. ;        no longer used to differentiate between machine types.  This is why a Power
  520. ;        Macintosh 7200/75 and a Power Macintosh 7200/90 return the same machine type
  521. ;        constant:  gestaltPowerMac7200.
  522. ;
  523. ;    The "Screen Type" suffix
  524. ;
  525. ;        All PowerBook models prior to the PowerBook 190, and all PowerBook Duo models
  526. ;        before the PowerBook Duo 2300 take the form:
  527. ;
  528. ;            gestalt<lineName><modelNumber><screenType>
  529. ;
  530. ;        Where <screenType> is "c" or the empty string.
  531. ;
  532. ;        e.g.
  533. ;
  534. ;            gestaltPowerBook100
  535. ;            gestaltPowerBookDuo280
  536. ;            gestaltPowerBookDuo280c
  537. ;            gestaltPowerBook180
  538. ;            gestaltPowerBook180c
  539. ;
  540. ;        Starting with the PowerBook 190 series and the PowerBook Duo 2300 series, machine
  541. ;        types are no longer differentiated based on screen type.  This is why a PowerBook
  542. ;        5300cs/100 and a PowerBook 5300c/100 both return the same machine type constant:
  543. ;        gestaltPowerBook5300.
  544. ;
  545. ;        Macintosh LC 630                gestaltMacLC630
  546. ;        Macintosh Performa 6200            gestaltPerforma6200
  547. ;        Macintosh Quadra 700            gestaltQuadra700
  548. ;        Macintosh PowerBook 5300        gestaltPowerBook5300
  549. ;        Macintosh PowerBook Duo 2300    gestaltPowerBookDuo2300
  550. ;        Power Macintosh 8500            gestaltPowerMac8500
  551. ;
  552.  
  553.  
  554.  
  555. gestaltMachineType                EQU        'mach'                ; machine type 
  556. gestaltClassic                    EQU        1
  557. gestaltMacXL                    EQU        2
  558. gestaltMac512KE                    EQU        3
  559. gestaltMacPlus                    EQU        4
  560. gestaltMacSE                    EQU        5
  561. gestaltMacII                    EQU        6
  562. gestaltMacIIx                    EQU        7
  563. gestaltMacIIcx                    EQU        8
  564. gestaltMacSE030                    EQU        9
  565. gestaltPortable                    EQU        10
  566. gestaltMacIIci                    EQU        11
  567. gestaltPowerMac8100_120            EQU        12
  568. gestaltMacIIfx                    EQU        13
  569. gestaltMacClassic                EQU        17
  570. gestaltMacIIsi                    EQU        18
  571. gestaltMacLC                    EQU        19
  572. gestaltMacQuadra900                EQU        20
  573. gestaltPowerBook170                EQU        21
  574. gestaltMacQuadra700                EQU        22
  575. gestaltClassicII                EQU        23
  576. gestaltPowerBook100                EQU        24
  577. gestaltPowerBook140                EQU        25
  578. gestaltMacQuadra950                EQU        26
  579. gestaltMacLCIII                    EQU        27
  580. gestaltPerforma450                EQU        27
  581. gestaltPowerBookDuo210            EQU        29
  582. gestaltMacCentris650            EQU        30
  583. gestaltPowerBookDuo230            EQU        32
  584. gestaltPowerBook180                EQU        33
  585. gestaltPowerBook160                EQU        34
  586. gestaltMacQuadra800                EQU        35
  587. gestaltMacQuadra650                EQU        36
  588. gestaltMacLCII                    EQU        37
  589. gestaltPowerBookDuo250            EQU        38
  590. gestaltAWS9150_80                EQU        39
  591. gestaltPowerMac8100_110            EQU        40
  592. gestaltAWS8150_110                EQU        40
  593. gestaltPowerMac5200                EQU        41
  594. gestaltPowerMac5260                EQU        41
  595. gestaltPerforma5300                EQU        41
  596. gestaltPowerMac6200                EQU        42
  597. gestaltPerforma6300                EQU        42
  598. gestaltMacIIvi                    EQU        44
  599. gestaltMacIIvm                    EQU        45
  600. gestaltPerforma600                EQU        45
  601. gestaltPowerMac7100_80            EQU        47
  602. gestaltMacIIvx                    EQU        48
  603. gestaltMacColorClassic            EQU        49
  604. gestaltPerforma250                EQU        49
  605. gestaltPowerBook165c            EQU        50
  606. gestaltMacCentris610            EQU        52
  607. gestaltMacQuadra610                EQU        53
  608. gestaltPowerBook145                EQU        54
  609. gestaltPowerMac8100_100            EQU        55
  610. gestaltMacLC520                    EQU        56
  611. gestaltAWS9150_120                EQU        57
  612. gestaltPowerMac6400                EQU        58
  613. gestaltPerforma6400                EQU        58
  614. gestaltPerforma6360                EQU        58
  615. gestaltMacCentris660AV            EQU        60
  616. gestaltMacQuadra660AV            EQU        60
  617. gestaltPerforma46x                EQU        62
  618. gestaltPowerMac8100_80            EQU        65
  619. gestaltAWS8150_80                EQU        65
  620. gestaltPowerMac9500                EQU        67
  621. gestaltPowerMac9600                EQU        67
  622. gestaltPowerMac7500                EQU        68
  623. gestaltPowerMac7600                EQU        68
  624. gestaltPowerMac8500                EQU        69
  625. gestaltPowerMac8600                EQU        69
  626. gestaltAWS8550                    EQU        68
  627. gestaltPowerBook180c            EQU        71
  628. gestaltPowerBook520                EQU        72
  629. gestaltPowerBook520c            EQU        72
  630. gestaltPowerBook540                EQU        72
  631. gestaltPowerBook540c            EQU        72
  632. gestaltPowerMac5400                EQU        74
  633. gestaltPowerMac6100_60            EQU        75
  634. gestaltAWS6150_60                EQU        75
  635. gestaltPowerBookDuo270c            EQU        77
  636. gestaltMacQuadra840AV            EQU        78
  637. gestaltPerforma550                EQU        80
  638. gestaltPowerBook165                EQU        84
  639. gestaltPowerBook190                EQU        85
  640. gestaltMacTV                    EQU        88
  641. gestaltMacLC475                    EQU        89
  642. gestaltPerforma47x                EQU        89
  643. gestaltMacLC575                    EQU        92
  644. gestaltMacQuadra605                EQU        94
  645. gestaltMacQuadra630                EQU        98
  646. gestaltMacLC580                    EQU        99
  647. gestaltPerforma580                EQU        99
  648. gestaltPowerMac6100_66            EQU        100
  649. gestaltAWS6150_66                EQU        100
  650. gestaltPowerBookDuo280            EQU        102
  651. gestaltPowerBookDuo280c            EQU        103
  652. gestaltPowerMacLC475            EQU        104                    ; Mac LC 475 & PPC Processor Upgrade Card
  653. gestaltPowerMacPerforma47x        EQU        104
  654. gestaltPowerMacLC575            EQU        105                    ; Mac LC 575 & PPC Processor Upgrade Card 
  655. gestaltPowerMacPerforma57x        EQU        105
  656. gestaltPowerMacQuadra630        EQU        106                    ; Quadra 630 & PPC Processor Upgrade Card
  657. gestaltPowerMacLC630            EQU        106                    ; Mac LC 630 & PPC Processor Upgrade Card
  658. gestaltPowerMacPerforma63x        EQU        106                    ; Performa 63x & PPC Processor Upgrade Card
  659. gestaltPowerMac7200                EQU        108
  660. gestaltPowerMac7300                EQU        109
  661. gestaltPowerMac7100_66            EQU        112
  662. gestaltPowerBook150                EQU        115
  663. gestaltPowerMacQuadra700        EQU        116                    ; Quadra 700 & Power PC Upgrade Card
  664. gestaltPowerMacQuadra900        EQU        117                    ; Quadra 900 & Power PC Upgrade Card 
  665. gestaltPowerMacQuadra950        EQU        118                    ; Quadra 950 & Power PC Upgrade Card 
  666. gestaltPowerMacCentris610        EQU        119                    ; Centris 610 & Power PC Upgrade Card 
  667. gestaltPowerMacCentris650        EQU        120                    ; Centris 650 & Power PC Upgrade Card 
  668. gestaltPowerMacQuadra610        EQU        121                    ; Quadra 610 & Power PC Upgrade Card 
  669. gestaltPowerMacQuadra650        EQU        122                    ; Quadra 650 & Power PC Upgrade Card 
  670. gestaltPowerMacQuadra800        EQU        123                    ; Quadra 800 & Power PC Upgrade Card 
  671. gestaltPowerBookDuo2300            EQU        124
  672. gestaltPowerBook500PPCUpgrade    EQU        126
  673. gestaltPowerBook5300            EQU        128
  674. gestaltPowerBook1400            EQU        310
  675. gestaltPowerBook3400            EQU        306
  676. gestaltPowerBook2400            EQU        307
  677. gestaltPowerBookG3                EQU        313
  678. gestaltPowerMac5500                EQU        512
  679. gestalt20thAnniversary            EQU        512
  680. gestaltPowerMac6500                EQU        513
  681. gestaltPowerMac4400_160            EQU        514                    ; slower machine has different machine ID
  682. gestaltPowerMac4400                EQU        515
  683.  
  684.  
  685. gestaltQuadra605                EQU        94
  686. gestaltQuadra610                EQU        53
  687. gestaltQuadra630                EQU        98
  688. gestaltQuadra650                EQU        36
  689. gestaltQuadra660AV                EQU        60
  690. gestaltQuadra700                EQU        22
  691. gestaltQuadra800                EQU        35
  692. gestaltQuadra840AV                EQU        78
  693. gestaltQuadra900                EQU        20
  694. gestaltQuadra950                EQU        26
  695.  
  696. kMachineNameStrID                EQU        -16395
  697.  
  698. gestaltSMPMailerVersion            EQU        'malr'                ; OCE StandardMail
  699.  
  700. gestaltMediaBay                    EQU        'mbeh'                ; media bay driver type 
  701. gestaltMBLegacy                    EQU        0                    ; media bay support in PCCard 2.0 
  702. gestaltMBSingleBay                EQU        1                    ; single bay media bay driver 
  703. gestaltMBMultipleBays            EQU        2                    ; multi-bay media bay driver 
  704.  
  705. gestaltMessageMgrVersion        EQU        'mess'                ; GX Printing Message Manager Gestalt Selector 
  706.  
  707. gestaltMachineIcon                EQU        'micn'                ; machine icon 
  708.  
  709. gestaltMiscAttr                    EQU        'misc'                ; miscellaneous attributes 
  710. gestaltScrollingThrottle        EQU        0                    ; true if scrolling throttle on 
  711. gestaltSquareMenuBar            EQU        2                    ; true if menu bar is square 
  712.  
  713. ;    The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect.
  714. ;    The same selector has been renamed gestaltMixedModeAttr to properly reflect the
  715. ;    Inside Mac: PowerPC System Software documentation.  The gestaltMixedModeVersion
  716. ;    symbol has been preserved only for backwards compatibility.
  717. ;
  718. ;    Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and
  719. ;    will be removed in a future release of the Interfaces.
  720. ;
  721. ;    For the first version of Mixed Mode, both meanings of the 'mixd' selector are
  722. ;    functionally identical.  They both return 0x00000001.  In subsequent versions
  723. ;    of Mixed Mode, however, the 'mixd' selector will not respond with an increasing
  724. ;    version number, but rather, with 32 attribute bits with various meanings.
  725. ;
  726.  
  727.  
  728. gestaltMixedModeVersion            EQU        'mixd'                ; returns version of Mixed Mode 
  729.  
  730. gestaltMixedModeAttr            EQU        'mixd'                ; returns Mixed Mode attributes 
  731. gestaltMixedModePowerPC            EQU        0                    ; true if Mixed Mode supports PowerPC ABI calling conventions 
  732. gestaltPowerPCAware                EQU        0                    ; old name for gestaltMixedModePowerPC 
  733. gestaltMixedModeCFM68K            EQU        1                    ; true if Mixed Mode supports CFM-68K calling conventions 
  734. gestaltMixedModeCFM68KHasTrap    EQU        2                    ; true if CFM-68K Mixed Mode implements _MixedModeDispatch (versions 1.0.1 and prior did not) 
  735. gestaltMixedModeCFM68KHasState    EQU        3                    ; true if CFM-68K Mixed Mode exports Save/RestoreMixedModeState 
  736.  
  737. gestaltQuickTimeConferencing    EQU        'mtlk'                ; returns QuickTime Conferencing version 
  738.  
  739. gestaltMemoryMapAttr            EQU        'mmap'                ; Memory map type 
  740. gestaltMemoryMapSparse            EQU        0                    ; Sparse memory is on 
  741.  
  742. gestaltMMUType                    EQU        'mmu '                ; mmu type 
  743. gestaltNoMMU                    EQU        0                    ; no MMU 
  744. gestaltAMU                        EQU        1                    ; address management unit 
  745. gestalt68851                    EQU        2                    ; 68851 PMMU 
  746. gestalt68030MMU                    EQU        3                    ; 68030 built-in MMU 
  747. gestalt68040MMU                    EQU        4                    ; 68040 built-in MMU 
  748. gestaltEMMU1                    EQU        5                    ; Emulated MMU type 1  
  749.  
  750. gestaltStdNBPAttr                EQU        'nlup'                ; standard nbp attributes 
  751. gestaltStdNBPPresent            EQU        0
  752. gestaltStdNBPSupportsAutoPosition EQU    1                    ; StandardNBP takes (-1,-1) to mean alert position main screen 
  753.  
  754. gestaltNotificationMgrAttr        EQU        'nmgr'                ; notification manager attributes 
  755. gestaltNotificationPresent        EQU        0                    ; notification manager exists 
  756.  
  757. gestaltNameRegistryVersion        EQU        'nreg'                ; NameRegistryLib version number, for System 7.5.2+ usage 
  758.  
  759. gestaltNuBusSlotCount            EQU        'nubs'                ; count of logical NuBus slots present 
  760.  
  761. gestaltOCEToolboxVersion        EQU        'ocet'                ; OCE Toolbox version 
  762. gestaltOCETB                    EQU        $0102                ; OCE Toolbox version 1.02 
  763. gestaltSFServer                    EQU        $0100                ; S&F Server version 1.0 
  764.  
  765. gestaltOCEToolboxAttr            EQU        'oceu'                ; OCE Toolbox attributes 
  766. gestaltOCETBPresent                EQU        $01                    ; OCE toolbox is present, not running 
  767. gestaltOCETBAvailable            EQU        $02                    ; OCE toolbox is running and available 
  768. gestaltOCESFServerAvailable        EQU        $04                    ; S&F Server is running and available 
  769. gestaltOCETBNativeGlueAvailable    EQU        $10                    ; Native PowerPC Glue routines are availible 
  770.  
  771. gestaltOpenFirmwareInfo            EQU        'opfw'                ; Open Firmware info 
  772.  
  773. gestaltOSAttr                    EQU        'os  '                ; o/s attributes 
  774. gestaltSysZoneGrowable            EQU        0                    ; system heap is growable 
  775. gestaltLaunchCanReturn            EQU        1                    ; can return from launch 
  776. gestaltLaunchFullFileSpec        EQU        2                    ; can launch from full file spec 
  777. gestaltLaunchControl            EQU        3                    ; launch control support available 
  778. gestaltTempMemSupport            EQU        4                    ; temp memory support 
  779. gestaltRealTempMemory            EQU        5                    ; temp memory handles are real 
  780. gestaltTempMemTracked            EQU        6                    ; temporary memory handles are tracked 
  781. gestaltIPCSupport                EQU        7                    ; IPC support is present 
  782. gestaltSysDebuggerSupport        EQU        8                    ; system debugger support is present 
  783.  
  784. gestaltOSTable                    EQU        'ostt'                ;  OS trap table base  
  785.  
  786. gestaltPCCard                    EQU        'pccd'                ;    PC Card attributes
  787. gestaltCardServicesPresent        EQU        0                    ;    PC Card 2.0 (68K) API is present
  788. gestaltPCCardFamilyPresent        EQU        1                    ;    PC Card 3.x (PowerPC) API is present
  789. gestaltPCCardHasPowerControl    EQU        2                    ;    PCCardSetPowerLevel is supported
  790. gestaltPCCardSupportsCardBus    EQU        3                    ;    CardBus is supported
  791.  
  792. gestaltProcClkSpeed                EQU        'pclk'                ; processor clock speed in hertz 
  793.  
  794. gestaltPCXAttr                    EQU        'pcxg'                ; PC Exchange attributes 
  795. gestaltPCXHas8and16BitFAT        EQU        0                    ; PC Exchange supports both 8 and 16 bit FATs 
  796. gestaltPCXHasProDOS                EQU        1                    ; PC Exchange supports ProDOS 
  797.  
  798. gestaltLogicalPageSize            EQU        'pgsz'                ; logical page size 
  799. ;     System 7.6 and later.  If gestaltScreenCaptureMain is not implemented,
  800. ;    PictWhap proceeds with screen capture in the usual way.
  801. ;
  802. ;    The high word of gestaltScreenCaptureMain is reserved (use 0).
  803. ;
  804. ;    To disable screen capture to disk, put zero in the low word.  To
  805. ;    specify a folder for captured pictures, put the vRefNum in the
  806. ;    low word of gestaltScreenCaptureMain, and put the directory ID in
  807. ;    gestaltScreenCaptureDir.
  808. ;
  809.  
  810.  
  811. gestaltScreenCaptureMain        EQU        'pic1'                ; Zero, or vRefNum of disk to hold picture 
  812. gestaltScreenCaptureDir            EQU        'pic2'                ; Directory ID of folder to hold picture 
  813.  
  814. gestaltGXPrintingMgrVersion        EQU        'pmgr'                ; QuickDraw GX Printing Manager Version
  815.  
  816. gestaltPopupAttr                EQU        'pop!'                ; popup cdef attributes 
  817. gestaltPopupPresent                EQU        0
  818.  
  819. gestaltPowerMgrAttr                EQU        'powr'                ; power manager attributes 
  820. gestaltPMgrExists                EQU        0
  821. gestaltPMgrCPUIdle                EQU        1
  822. gestaltPMgrSCC                    EQU        2
  823. gestaltPMgrSound                EQU        3
  824. gestaltPMgrDispatchExists        EQU        4
  825. gestaltPMgrSupportsAVPowerStateAtSleepWake EQU 5
  826. ; * PPC will return the combination of following bit fields.
  827. ; * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
  828. ; * indicates PPC is cuurently is only supports real time delivery
  829. ; * and both incoming and outgoing network sessions are allowed.
  830. ; * By default local real time delivery is supported as long as PPCInit has been called.
  831.  
  832.  
  833. gestaltPPCToolboxAttr            EQU        'ppc '                ; PPC toolbox attributes 
  834. gestaltPPCToolboxPresent        EQU        $0000                ; PPC Toolbox is present  Requires PPCInit to be called 
  835. gestaltPPCSupportsRealTime        EQU        $1000                ; PPC Supports real-time delivery 
  836. gestaltPPCSupportsIncoming        EQU        $0001                ; PPC will deny incoming network requests 
  837. gestaltPPCSupportsOutGoing        EQU        $0002                ; PPC will deny outgoing network requests 
  838.  
  839. gestaltProcessorType            EQU        'proc'                ; processor type 
  840. gestalt68000                    EQU        1
  841. gestalt68010                    EQU        2
  842. gestalt68020                    EQU        3
  843. gestalt68030                    EQU        4
  844. gestalt68040                    EQU        5
  845.  
  846. gestaltSDPPromptVersion            EQU        'prpv'                ; OCE Standard Directory Panel
  847.  
  848. gestaltParityAttr                EQU        'prty'                ; parity attributes 
  849. gestaltHasParityCapability        EQU        0                    ; has ability to check parity 
  850. gestaltParityEnabled            EQU        1                    ; parity checking enabled 
  851.  
  852. gestaltQD3DVersion                EQU        'q3v '                ; Quickdraw 3D version in pack BCD
  853.  
  854. gestaltQD3DViewer                EQU        'q3vc'                ; Quickdraw 3D viewer attributes
  855. gestaltQD3DViewerPresent        EQU        0                    ; bit 0 set if QD3D Viewer is available
  856.     IF OLDROUTINENAMES THEN
  857.  
  858. gestaltQD3DViewerNotPresent        EQU        $00
  859. gestaltQD3DViewerAvailable        EQU        $01
  860.     ENDIF    ; OLDROUTINENAMES
  861.  
  862. gestaltQuickdrawVersion            EQU        'qd  '                ; quickdraw version 
  863. gestaltOriginalQD                EQU        $0000                ; original 1-bit QD 
  864. gestalt8BitQD                    EQU        $0100                ; 8-bit color QD 
  865. gestalt32BitQD                    EQU        $0200                ; 32-bit color QD 
  866. gestalt32BitQD11                EQU        $0201                ; 32-bit color QDv1.1 
  867. gestalt32BitQD12                EQU        $0220                ; 32-bit color QDv1.2 
  868. gestalt32BitQD13                EQU        $0230                ; 32-bit color QDv1.3 
  869.  
  870. gestaltQD3D                        EQU        'qd3d'                ; Quickdraw 3D attributes
  871. gestaltQD3DPresent                EQU        0                    ; bit 0 set if QD3D available
  872.     IF OLDROUTINENAMES THEN
  873.  
  874. gestaltQD3DNotPresent            EQU        $00
  875. gestaltQD3DAvailable            EQU        $01
  876.     ENDIF    ; OLDROUTINENAMES
  877.  
  878. gestaltGXVersion                EQU        'qdgx'                ; Overall QuickDraw GX Version
  879.  
  880. gestaltQuickdrawFeatures        EQU        'qdrw'                ; quickdraw features 
  881. gestaltHasColor                    EQU        0                    ; color quickdraw present 
  882. gestaltHasDeepGWorlds            EQU        1                    ; GWorlds can be deeper than 1-bit 
  883. gestaltHasDirectPixMaps            EQU        2                    ; PixMaps can be direct (16 or 32 bit) 
  884. gestaltHasGrayishTextOr            EQU        3                    ; supports text mode grayishTextOr 
  885. gestaltSupportsMirroring        EQU        4                    ; Supports video mirroring via the Display Manager. 
  886.  
  887. gestaltQDTextVersion            EQU        'qdtx'                ; QuickdrawText version 
  888. gestaltOriginalQDText            EQU        $0000                ; up to and including 8.1 
  889. gestaltAllegroQDText            EQU        $0100                ; starting with 8.2 (?) 
  890.  
  891. gestaltQDTextFeatures            EQU        'qdtf'                ; QuickdrawText features 
  892. gestaltWSIISupportBit            EQU        0                    ; bit 0: WSII support included 
  893. gestaltSbitFontsBit                EQU        1                    ; sbit-only fonts supported 
  894. gestaltAntiAliasBit                EQU        2                    ; capably of antialiased text 
  895. gestaltOFA2availableBit            EQU        3                    ; OFA2 available 
  896.  
  897.  
  898. gestaltQuickTimeConferencingInfo EQU    'qtci'                ; returns pointer to QuickTime Conferencing information 
  899.  
  900. gestaltQuickTimeVersion            EQU        'qtim'                ; returns version of QuickTime 
  901. gestaltQuickTime                EQU        'qtim'                ; gestaltQuickTime is old name for gestaltQuickTimeVersion 
  902.  
  903. gestaltQuickTimeFeatures        EQU        'qtrs'
  904. gestaltPPCQuickTimeLibPresent    EQU        0                    ; PowerPC QuickTime glue library is present 
  905.  
  906. gestaltQTVRMgrAttr                EQU        'qtvr'                ; QuickTime VR attributes                               
  907. gestaltQTVRMgrPresent            EQU        0                    ; QTVR API is present                                   
  908. gestaltQTVRObjMoviesPresent        EQU        1                    ; QTVR runtime knows about object movies                
  909. gestaltQTVRCylinderPanosPresent    EQU        2                    ; QTVR runtime knows about cylindrical panoramic movies 
  910.  
  911. gestaltQTVRMgrVers                EQU        'qtvv'                ; QuickTime VR version                                  
  912.  
  913. gestaltPhysicalRAMSize            EQU        'ram '                ; physical RAM size 
  914.  
  915. gestaltRBVAddr                    EQU        'rbv '                ; RBV base address  
  916.  
  917. gestaltROMSize                    EQU        'rom '                ; rom size 
  918.  
  919. gestaltROMVersion                EQU        'romv'                ; rom version 
  920.  
  921. gestaltResourceMgrAttr            EQU        'rsrc'                ; Resource Mgr attributes 
  922. gestaltPartialRsrcs                EQU        0                    ; True if partial resources exist 
  923.  
  924. gestaltRealtimeMgrAttr            EQU        'rtmr'                ; Realtime manager attributes            
  925. gestaltRealtimeMgrPresent        EQU        0                    ; true if the Realtime manager is present     
  926.  
  927. gestaltSCCReadAddr                EQU        'sccr'                ; scc read base address  
  928.  
  929. gestaltSCCWriteAddr                EQU        'sccw'                ; scc read base address  
  930.  
  931. gestaltScrapMgrAttr                EQU        'scra'                ; Scrap Manager attributes 
  932. gestaltScrapMgrTranslationAware    EQU        0                    ; True if scrap manager is translation aware 
  933.  
  934. gestaltScriptMgrVersion            EQU        'scri'                ; Script Manager version number     
  935.  
  936. gestaltScriptCount                EQU        'scr#'                ; number of active script systems   
  937.  
  938. gestaltSCSI                        EQU        'scsi'                ; SCSI Manager attributes 
  939. gestaltAsyncSCSI                EQU        0                    ; Supports Asynchronous SCSI 
  940. gestaltAsyncSCSIINROM            EQU        1                    ; Async scsi is in ROM (available for booting) 
  941. gestaltSCSISlotBoot                EQU        2                    ; ROM supports Slot-style PRAM for SCSI boots (PDM and later) 
  942. gestaltSCSIPollSIH                EQU        3                    ; SCSI Manager will poll for interrupts if Secondary Interrupts are busy. 
  943.  
  944. gestaltControlStripAttr            EQU        'sdev'                ; Control Strip attributes 
  945. gestaltControlStripExists        EQU        0                    ; Control Strip is installed 
  946. gestaltControlStripVersionFixed    EQU        1                    ; Control Strip version Gestalt selector was fixed 
  947. gestaltControlStripUserFont        EQU        2                    ; supports user-selectable font/size 
  948. gestaltControlStripUserHotKey    EQU        3                    ; support user-selectable hot key to show/hide the window 
  949.  
  950. gestaltSDPStandardDirectoryVersion EQU    'sdvr'                ; OCE Standard Directory Panel
  951.  
  952. gestaltSerialAttr                EQU        'ser '                ; Serial attributes 
  953. gestaltHasGPIaToDCDa            EQU        0                    ; GPIa connected to DCDa
  954. gestaltHasGPIaToRTxCa            EQU        1                    ; GPIa connected to RTxCa clock input
  955. gestaltHasGPIbToDCDb            EQU        2                    ; GPIb connected to DCDb 
  956.  
  957. gestaltShutdownAttributes        EQU        'shut'                ; ShutDown Manager Attributes 
  958. gestaltShutdownHassdOnBootVolUnmount EQU 0                    ; True if ShutDown Manager unmounts boot & VM volume at shutdown time. 
  959.  
  960. gestaltNuBusConnectors            EQU        'sltc'                ; bitmap of NuBus connectors
  961.  
  962. gestaltSlotAttr                    EQU        'slot'                ; slot attributes  
  963. gestaltSlotMgrExists            EQU        0                    ; true is slot mgr exists  
  964. gestaltNuBusPresent                EQU        1                    ; NuBus slots are present  
  965. gestaltSESlotPresent            EQU        2                    ; SE PDS slot present  
  966. gestaltSE30SlotPresent            EQU        3                    ; SE/30 slot present  
  967. gestaltPortableSlotPresent        EQU        4                    ; Portable’s slot present  
  968.  
  969. gestaltFirstSlotNumber            EQU        'slt1'                ; returns first physical slot 
  970.  
  971. gestaltSoundAttr                EQU        'snd '                ; sound attributes 
  972. gestaltStereoCapability            EQU        0                    ; sound hardware has stereo capability 
  973. gestaltStereoMixing                EQU        1                    ; stereo mixing on external speaker 
  974. gestaltSoundIOMgrPresent        EQU        3                    ; The Sound I/O Manager is present 
  975. gestaltBuiltInSoundInput        EQU        4                    ; built-in Sound Input hardware is present 
  976. gestaltHasSoundInputDevice        EQU        5                    ; Sound Input device available 
  977. gestaltPlayAndRecord            EQU        6                    ; built-in hardware can play and record simultaneously 
  978. gestalt16BitSoundIO                EQU        7                    ; sound hardware can play and record 16-bit samples 
  979. gestaltStereoInput                EQU        8                    ; sound hardware can record stereo 
  980. gestaltLineLevelInput            EQU        9                    ; sound input port requires line level 
  981.                                                             ; the following bits are not defined prior to Sound Mgr 3.0 
  982. gestaltSndPlayDoubleBuffer        EQU        10                    ; SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later 
  983. gestaltMultiChannels            EQU        11                    ; multiple channel support, set by Sound Mgr 3.0 and later 
  984. gestalt16BitAudioSupport        EQU        12                    ; 16 bit audio data supported, set by Sound Mgr 3.0 and later 
  985.  
  986. gestaltSplitOSAttr                EQU        'spos'
  987. gestaltSplitOSAware                EQU        1                    ; the system includes the code to deal with a split os situation. 
  988. gestaltSplitOSEnablerVolumeIsDifferentFromBootVolume EQU 2    ; the active enabler is on a different volume than the system file. 
  989.  
  990. gestaltSMPSPSendLetterVersion    EQU        'spsl'                ; OCE StandardMail
  991.  
  992. gestaltSpeechRecognitionAttr    EQU        'srta'                ; speech recognition attributes 
  993. gestaltDesktopSpeechRecognition    EQU        1                    ; recognition thru the desktop microphone is available 
  994. gestaltTelephoneSpeechRecognition EQU    2                    ; recognition thru the telephone is available 
  995.  
  996. gestaltSpeechRecognitionVersion    EQU        'srtb'                ; speech recognition version (0x0150 is the first version that fully supports the API) 
  997.  
  998. gestaltSoftwareVendorCode        EQU        'srad'                ; Returns system software vendor information 
  999. gestaltSoftwareVendorApple        EQU        'Appl'                ; System software sold by Apple 
  1000. gestaltSoftwareVendorLicensee    EQU        'Lcns'                ; System software sold by licensee 
  1001.  
  1002. gestaltStandardFileAttr            EQU        'stdf'                ; Standard File attributes 
  1003. gestaltStandardFile58            EQU        0                    ; True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported 
  1004. gestaltStandardFileTranslationAware EQU    1                    ; True if standard file is translation manager aware 
  1005. gestaltStandardFileHasColorIcons EQU    2                    ; True if standard file has 16x16 color icons 
  1006. gestaltStandardFileUseGenericIcons EQU    3                    ; Standard file LDEF to use only the system generic icons if true 
  1007. gestaltStandardFileHasDynamicVolumeAllocation EQU 4            ; True if standard file supports more than 20 volumes 
  1008.  
  1009. gestaltSysArchitecture            EQU        'sysa'                ; Native System Architecture 
  1010. gestalt68k                        EQU        1                    ; Motorola MC68k architecture 
  1011. gestaltPowerPC                    EQU        2                    ; IBM PowerPC architecture 
  1012.  
  1013. gestaltSystemUpdateVersion        EQU        'sysu'                ; System Update version 
  1014.  
  1015. gestaltSystemVersion            EQU        'sysv'                ; system version
  1016.  
  1017. gestaltToolboxTable                EQU        'tbtt'                ;  OS trap table base  
  1018.  
  1019. gestaltTextEditVersion            EQU        'te  '                ; TextEdit version number 
  1020. gestaltTE1                        EQU        1                    ; TextEdit in MacIIci ROM 
  1021. gestaltTE2                        EQU        2                    ; TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) 
  1022. gestaltTE3                        EQU        3                    ; TextEdit with 6.0.4 Script Systems all but MacIIci 
  1023. gestaltTE4                        EQU        4                    ; TextEdit in System 7.0 
  1024. gestaltTE5                        EQU        5                    ; TextWidthHook available in TextEdit 
  1025.  
  1026. gestaltTEAttr                    EQU        'teat'                ; TextEdit attributes 
  1027. gestaltTEHasGetHiliteRgn        EQU        0                    ; TextEdit has TEGetHiliteRgn 
  1028. gestaltTESupportsInlineInput    EQU        1                    ; TextEdit does Inline Input 
  1029. gestaltTESupportsTextObjects    EQU        2                    ; TextEdit does Text Objects 
  1030. gestaltTEHasWhiteBackground        EQU        3                    ; TextEdit supports overriding the TERec's background to white 
  1031.  
  1032. gestaltTeleMgrAttr                EQU        'tele'                ; Telephone manager attributes 
  1033. gestaltTeleMgrPresent            EQU        0
  1034. gestaltTeleMgrPowerPCSupport    EQU        1
  1035. gestaltTeleMgrSoundStreams        EQU        2
  1036. gestaltTeleMgrAutoAnswer        EQU        3
  1037. gestaltTeleMgrIndHandset        EQU        4
  1038. gestaltTeleMgrSilenceDetect        EQU        5
  1039. gestaltTeleMgrNewTELNewSupport    EQU        6
  1040.  
  1041. gestaltTermMgrAttr                EQU        'term'                ; terminal mgr attributes 
  1042. gestaltTermMgrPresent            EQU        0
  1043. gestaltTermMgrErrorString        EQU        2
  1044.  
  1045. gestaltThreadMgrAttr            EQU        'thds'                ; Thread Manager attributes 
  1046. gestaltThreadMgrPresent            EQU        0                    ; bit true if Thread Mgr is present 
  1047. gestaltSpecificMatchSupport        EQU        1                    ; bit true if Thread Mgr supports exact match creation option 
  1048. gestaltThreadsLibraryPresent    EQU        2                    ; bit true if Thread Mgr shared library is present 
  1049.  
  1050. gestaltTimeMgrVersion            EQU        'tmgr'                ; time mgr version 
  1051. gestaltStandardTimeMgr            EQU        1                    ; standard time mgr is present 
  1052. gestaltRevisedTimeMgr            EQU        2                    ; revised time mgr is present 
  1053. gestaltExtendedTimeMgr            EQU        3                    ; extended time mgr is present 
  1054.  
  1055. gestaltTSMTEVersion                EQU        'tmTV'
  1056. gestaltTSMTE1                    EQU        $0100
  1057. gestaltTSMTE15                    EQU        $0150
  1058. gestaltTSMTE2                    EQU        $0200
  1059.  
  1060. gestaltTSMTEAttr                EQU        'tmTE'
  1061. gestaltTSMTEPresent                EQU        0
  1062. gestaltTSMTE                    EQU        0                    ; gestaltTSMTE is old name for gestaltTSMTEPresent 
  1063.  
  1064. gestaltALMAttr                    EQU        'trip'                ; Settings Manager attributes (see also gestaltALMVers) 
  1065. gestaltALMPresent                EQU        0                    ; bit true if ALM is available 
  1066. gestaltALMHasSFGroup            EQU        1                    ; bit true if Put/Get/Merge Group calls are implmented 
  1067. gestaltALMHasCFMSupport            EQU        2                    ; bit true if CFM-based modules are supported 
  1068. gestaltALMHasRescanNotifiers    EQU        3                    ; bit true if Rescan notifications/events will be sent to clients 
  1069.  
  1070. gestaltALMHasSFLocation            EQU        1
  1071.  
  1072. gestaltTSMgrVersion                EQU        'tsmv'                ; Text Services Mgr version, if present 
  1073. gestaltTSMgr15                    EQU        $0150
  1074. gestaltTSMgr2                    EQU        $0200
  1075.  
  1076. gestaltTSMgrAttr                EQU        'tsma'                ; Text Services Mgr attributes, if present 
  1077. gestaltTSMDisplayMgrAwareBit    EQU        0                    ; TSM knows about display manager 
  1078. gestaltTSMdoesTSMTEBit            EQU        1                    ; TSM has integrated TSMTE 
  1079.  
  1080. gestaltSpeechAttr                EQU        'ttsc'                ; Speech Manager attributes 
  1081. gestaltSpeechMgrPresent            EQU        0                    ; bit set indicates that Speech Manager exists 
  1082. gestaltSpeechHasPPCGlue            EQU        1                    ; bit set indicates that native PPC glue for Speech Manager API exists 
  1083.  
  1084. gestaltTVAttr                    EQU        'tv  '                ; TV version 
  1085. gestaltHasTVTuner                EQU        0                    ; supports Philips FL1236F video tuner 
  1086. gestaltHasSoundFader            EQU        1                    ; supports Philips TEA6330 Sound Fader chip 
  1087. gestaltHasHWClosedCaptioning    EQU        2                    ; supports Philips SAA5252 Closed Captioning 
  1088. gestaltHasIRRemote                EQU        3                    ; supports CyclopsII Infra Red Remote control 
  1089. gestaltHasVidDecoderScaler        EQU        4                    ; supports Philips SAA7194 Video Decoder/Scaler 
  1090. gestaltHasStereoDecoder            EQU        5                    ; supports Sony SBX1637A-01 stereo decoder 
  1091. gestaltHasSerialFader            EQU        6                    ; has fader audio in serial with system audio 
  1092. gestaltHasFMTuner                EQU        7                    ; has FM Tuner from donnybrook card 
  1093. gestaltHasSystemIRFunction        EQU        8                    ; Infra Red button function is set up by system and not by Video Startup 
  1094. gestaltIRDisabled                EQU        9                    ; Infra Red remote is not disabled. 
  1095. gestaltINeedIRPowerOffConfirm    EQU        10                    ; Need IR power off confirm dialog. 
  1096. gestaltHasZoomedVideo            EQU        11                    ; Has Zoomed Video PC Card video input. 
  1097.  
  1098.  
  1099. gestaltVersion                    EQU        'vers'                ; gestalt version 
  1100. gestaltValueImplementedVers        EQU        5                    ; version of gestalt where gestaltValue is implemented. 
  1101.  
  1102. gestaltVIA1Addr                    EQU        'via1'                ; via 1 base address  
  1103.  
  1104. gestaltVIA2Addr                    EQU        'via2'                ; via 2 base address  
  1105.  
  1106. gestaltVMAttr                    EQU        'vm  '                ; virtual memory attributes 
  1107. gestaltVMPresent                EQU        0                    ; true if virtual memory is present 
  1108. gestaltVMHasLockMemoryForOutput    EQU        1                    ; true if LockMemoryForOutput is available 
  1109. gestaltVMFilemappingOn            EQU        3                    ; true if filemapping is available 
  1110. gestaltVMHasPagingControl        EQU        4                    ; true if MakeMemoryResident, MakeMemoryNonResident, FlushMemory, and ReleaseMemoryData are available 
  1111.  
  1112. gestaltALMVers                    EQU        'walk'                ; Settings Manager version (see also gestaltALMAttr) 
  1113.  
  1114. gestaltTranslationAttr            EQU        'xlat'                ; Translation Manager attributes 
  1115. gestaltTranslationMgrExists        EQU        0                    ; True if translation manager exists 
  1116. gestaltTranslationMgrHintOrder    EQU        1                    ; True if hint order reversal in effect 
  1117. gestaltTranslationPPCAvail        EQU        2
  1118. gestaltTranslationGetPathAPIAvail EQU    3
  1119.  
  1120. gestaltExtToolboxTable            EQU        'xttt'                ; Extended Toolbox trap table base 
  1121.  
  1122.  
  1123.     ENDIF ; __GESTALT__ 
  1124.  
  1125.